﻿//  -------------------- iSharePoint -------------------- //
// 
//  Company:	IT Complex, LLC
//  Project:	Smart.Common
//  File name:	SqlSecurableType.cs
//  Developer:	Solomatov Igor
//  Created:	15.04.2012
// 
//  -------------------- iSharePoint -------------------- //

using System;
using System.Collections.Generic;

namespace Smart.Common.Security
{
	/// <summary>
	/// SQL securable type
	/// </summary>
	public class SqlSecurableType : SecurableType
	{
		/// <summary>
		/// SQL securable type
		/// </summary>
		public static SqlSecurableType Instance = new SqlSecurableType();

		/// <summary>
		/// Enter security context
		/// </summary>
		public override void EnterSecurityContext()
		{
			throw new NotSupportedException();
		}

		/// <summary>
		/// Leave security context
		/// </summary>
		public override void LeaveSecurityContext()
		{
			throw new NotSupportedException();
		}

		/// <summary>
		/// Checks whether security assignments inherited from parent securable object
		/// </summary>
		public override bool IsSecurityInherited(ISecurable securable)
		{
			throw new NotSupportedException();
		}

		/// <summary>
		/// Make security inherit from parent securable object
		/// </summary>
		public override void InheritSecurity(ISecurable securable)
		{
			throw new NotSupportedException();
		}

		/// <summary>
		/// Break security inheritance from parent securable object
		/// </summary>
		public override void BreakSecurityInheritance(ISecurable securable, bool copyAssignments)
		{
			throw new NotSupportedException();
		}

		/// <summary>
		/// Ensure securable security assignments not more and not less then specified, except system security settings
		/// </summary>
		/// <returns>true, if security changed</returns>
		public override bool EnsureSecurityExact(ISecurable securable, ICollection<SecurityAssignment> assignments, bool currentScopeOnly)
		{
			throw new NotSupportedException();
		}

		/// <summary>
		/// Ensure securable security assignments not less then specified, except system security settings
		/// </summary>
		/// <returns>true, if security changed</returns>
		public override bool EnsureSecurityInherit(ISecurable securable, ICollection<SecurityAssignment> assignments, bool currentScopeOnly)
		{
			throw new NotSupportedException();
		}
	}
}